Systems and methods for ranking recommendations

ABSTRACT

A method of ranking recommendations, the method comprising receiving a recommendation to improve employee productivity, the recommendation including an indication of an equipment fault, retrieving context data associated with the equipment fault, the context data including at least three of: a fault priority associated with the equipment fault, a work order status for a work order associated with the equipment fault, a priority associated with at least one of (i) a piece of equipment, (ii) a space, or (iii) an individual associated with the equipment fault, a monetary value associated with the equipment fault, or a health parameter associated with the equipment fault, calculating a score for the recommendation based on the at least three of: the fault priority, the work order status, the priority, the monetary value, or the health parameter, and performing an action based on the score using at least one of the score or the recommendation.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application claims the benefit of and priority to IndianProvisional Patent Application No. 202121011779, filed Mar. 19, 2021,the entirety of which is incorporated by reference herein.

BACKGROUND

The present disclosure relates generally to building management systems(BMS), and more particularly to ranking recommendations generated by aBMS.

Building operators may use a graphical user interface to interact with aBMS. The graphical user interface may present recommendations to improveand/or modify various aspects of and/or associated with a buildingmanaged by the BMS. In various embodiments, there may be morerecommendations generated by the BMS than can be efficiently managed bythe building operator. Therefore, it may be difficult to prioritizewhich recommendations should be addressed and in which order therecommendations should be addressed.

SUMMARY

One implementation of the present disclosure is a method of rankingrecommendations, the method comprising receiving a recommendation toimprove space utilization of a space, retrieving context data associatedwith the space, the context data including (i) data describing previoususer interest in other recommendations related to the recommendation and(ii) at least one of: data describing a current space utilization forthe space, data describing a number of recommendations that areassociated with the space, data describing environmental preferences offirst individuals associated with the space or a building including thespace, or data describing an organizational grouping of secondindividuals associated with the space or the building, calculating ascore for the recommendation based on the data describing the previoususer interest and the at least one of: the data describing the currentspace utilization, the data describing the number of recommendations,the data describing the environmental preferences, or the datadescribing the organizational grouping, and performing an action basedon the score using at least one of the score or the recommendation.

In some embodiments, the method further comprises calculating a spaceutilization improvement potential based on the data describing thecurrent space utilization. In some embodiments, the method furthercomprises calculating the score based on the data describing the currentspace utilization, the data describing the number of recommendations,the data describing the previous user interest, and the spaceutilization improvement potential. In some embodiments, performing theaction includes displaying the recommendation to a user based on thescore. In some embodiments, displaying the recommendation includesemphasizing the recommendation over other recommendations based on thescore for the recommendation and other scores associated with each ofthe other recommendations. In some embodiments, emphasizing therecommendation includes displaying the recommendation higher in a listof recommendations. In some embodiments, retrieving the context dataincluding the data describing the current space utilization includesretrieving a number of individuals using the space and a capacity forthe space. In some embodiments, the method further comprisescalculating, based on the number of individuals and the capacity, thecurrent space utilization. In some embodiments, retrieving the datadescribing the previous user interest includes measuring a number ofuser interactions with the other recommendations and comparing thenumber of user interactions with a threshold.

Another embodiment of the present disclosure is a system for rankingrecommendations, the system comprising one or more processors and one ormore memories having instructions stored thereon that, when executed bythe one or more processors, cause the one or more processors to receivea recommendation to improve space utilization of a space, retrievecontext data associated with the space, the context data including (i)data describing previous user interest in other recommendations relatedto the recommendation and (ii) at least one of: data describing acurrent space utilization for the space, data describing a number ofrecommendations that are associated with the space, data describingenvironmental preferences of first individuals associated with the spaceor a building including the space, or data describing an organizationalgrouping of second individuals associated with the space or thebuilding, calculate a score for the recommendation based on the datadescribing the previous user interest and the at least one of: the datadescribing the current space utilization, the data describing the numberof recommendations, the data describing the environmental preferences,or the data describing the organizational grouping, and perform anaction based on the score using at least one of the score or therecommendation.

In some embodiments, instructions further cause the one or moreprocessors to calculate a space utilization improvement potential basedon the data describing the current space utilization. In someembodiments, the instructions further cause the one or more processorsto calculate the score based on the data describing the current spaceutilization, the data describing the number of recommendations, the datadescribing the previous user interest, and the space utilizationimprovement potential. In some embodiments, performing the actionincludes displaying the recommendation to a user based on the score. Insome embodiments, displaying the recommendation includes emphasizing therecommendation over other recommendations based on the score for therecommendation and other scores associated with each of the otherrecommendations. In some embodiments, emphasizing the recommendationincludes displaying the recommendation higher in a list ofrecommendations. In some embodiments, retrieving the context dataincluding the data describing the current space utilization includesretrieving a number of individuals using the space and a capacity forthe space. In some embodiments, the instructions further cause the oneor more processors to calculate, based on the number of individuals andthe capacity, the current space utilization. In some embodiments,retrieving the data describing the previous user interest includesmeasuring a number of user interactions with the other recommendationsand comparing the number of user interactions with a threshold.

Another embodiment of the present disclosure is one or morenon-transitory computer-readable storage media having instructionsstored thereon that, when executed by one or more processors, cause theone or more processors to receive a recommendation to improve spaceutilization of a space, retrieve context data associated with the space,the context data including (i) data describing previous user interest inother recommendations related to the recommendation and (ii) at leastone of: data describing a current space utilization for the space, datadescribing a number of recommendations that are associated with thespace, data describing environmental preferences of first individualsassociated with the space or a building including the space, or datadescribing an organizational grouping of second individuals associatedwith the space or the building, calculate a score for the recommendationbased on the data describing the previous user interest and the at leastone of: the data describing the current space utilization, the datadescribing the number of recommendations, the data describing theenvironmental preferences, or the data describing the organizationalgrouping, and perform an action based on the score using at least one ofthe score or the recommendation.

In some embodiments, performing the action includes emphasizing therecommendation over other recommendations by displaying therecommendation higher in a list of recommendations based on the scorefor the recommendation and other scores associated with each of theother recommendations.

Another embodiment of the present disclosure is a method of rankingrecommendations, the method comprising receiving a recommendation toimprove employee productivity, the recommendation including anindication of an equipment fault, retrieving context data associatedwith the equipment fault, the context data including at least three of:a fault priority associated with the equipment fault, a work orderstatus for a work order associated with the equipment fault, a priorityassociated with at least one of (i) a piece of equipment, (ii) a space,or (iii) an individual associated with the equipment fault, a monetaryvalue associated with the equipment fault, or a health parameterassociated with the equipment fault, calculating a score for therecommendation based on the at least three of: the fault priority, thework order status, the priority, the monetary value, or the healthparameter, and performing an action based on the score using at leastone of the score or the recommendation.

In some embodiments, retrieving the context data includes retrievingdata associated with a number of previous user interactions withrecommendations relating to equipment of a same type as the piece ofequipment. In some embodiments, updating the equipment priority based onthe number of previous user interactions. In some embodiments,performing the action includes emphasizing the recommendation over otherrecommendations by displaying the recommendation higher in a list ofrecommendations based on the score for the recommendation and otherscores associated with each of the other recommendations. In someembodiments, the context data further includes at least one of: an airquality metric associated with the equipment fault, or an energy usagemetric associated with the equipment fault, and wherein the score iscalculated based on at least one of: the air quality metric, or theenergy usage metric. In some embodiments, the priority is a user definedpriority corresponding to the at least one of: the piece of equipment,the space, or the individual. In some embodiments, retrieving thecontext data includes retrieving data describing a change to one or moreenvironmental parameters of a space associated with the piece ofequipment, and wherein the method further includes updating the prioritybased on the change. In some embodiments, the score is calculated basedon the fault priority, the work order status, and the priority. In someembodiments, retrieving the context data includes retrieving anindication of whether the piece of equipment has a standby, and whereinthe method further includes updating the priority based on theindication. In some embodiments, the equipment fault is a predictedequipment fault that has yet to occur.

Another embodiment of the present disclosure is a system for rankingrecommendations, the system comprising one or more processors and one ormore memories storing instructions thereon that, when executed by theone or more processors, cause the one or more processors to receive arecommendation to improve employee productivity, the recommendationincluding an indication of an equipment fault, retrieve context dataassociated with the equipment fault, the context data including at leastthree of: a fault priority associated with the equipment fault, a workorder status for a work order associated with the equipment fault, apriority associated with at least one of (i) a piece of equipment, (ii)a space, or (iii) an individual associated with the equipment fault, amonetary value associated with the equipment fault, or a healthparameter associated with the equipment fault, calculate a score for therecommendation based on the at least three of: the fault priority, thework order status, the priority, the monetary value, or the healthparameter, and perform an action based on the score using at least oneof the score or the recommendation.

In some embodiments, retrieving the context data includes retrievingdata associated with a number of previous user interactions withrecommendations relating to equipment of a same type as the piece ofequipment. In some embodiments, the instructions further cause the oneor more processors to update the equipment priority based on the numberof previous user interactions. In some embodiments, performing theaction includes emphasizing the recommendation over otherrecommendations by displaying the recommendation higher in a list ofrecommendations based on the score for the recommendation and otherscores associated with each of the other recommendations. In someembodiments, the context data further includes at least one of: an airquality metric associated with the equipment fault, or an energy usagemetric associated with the equipment fault, and wherein the score iscalculated based on at least one of: the air quality metric, or theenergy usage metric. In some embodiments, the priority is a user definedpriority corresponding to the at least one of: the piece of equipment,the space, or the individual. In some embodiments, retrieving thecontext data includes retrieving data describing a change to one or moreenvironmental parameters of a space associated with the piece ofequipment, and wherein the instructions further cause the one or moreprocessors to update the priority based on the change. In someembodiments, the score is calculated based on the fault priority, thework order status, and the priority. In some embodiments, retrieving thecontext data includes retrieving an indication of whether the piece ofequipment has a standby, and wherein the instructions further cause theone or more processors to update the priority based on the indication.In some embodiments, the equipment fault is a predicted equipment faultthat has yet to occur.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a smart building, according to someembodiments.

FIG. 2 is a block diagram of a waterside system, according to someembodiments.

FIG. 3 is a block diagram of an airside system, according to someembodiments.

FIG. 4 is a block diagram of a building management system, according tosome embodiments.

FIG. 5 is a block diagram of a smart building environment, according tosome embodiments.

FIG. 6 is a block diagram of a ranking system for rankingrecommendations generated by a BMS, according to some embodiments.

FIG. 7 is a flowchart illustrating a method of ranking elements usingthe ranking system of FIG. 6, according to some embodiments.

FIG. 8 is a block diagram illustrating a user interface having rankedrecommendations, according to some embodiments.

FIG. 9 is a block diagram illustrating another user interface havingranked recommendations, according to some embodiments.

DETAILED DESCRIPTION Overview

Referring generally to the figures, systems and methods for rankingrecommendations are disclosed herein. In various embodiments,recommendations are ranked according to various parameters such as faultpriority, work order status, equipment priority, improvement potential,number of similar recommendations, user feedback, context data, and/orthe like. In some embodiments, recommendations are ranked using anoptimization algorithm. Additionally or alternatively, recommendationsmay be ranked using machine learning techniques such as reinforcementlearning. It should be understood that, while the systems and methods ofthe present disclosure are discussed in relation to rankingrecommendations, other elements may be ranked such as equipment faults,calendar notifications, reimbursement confirmations, work orderrequests, security notifications, and/or the like. The systems andmethods disclosed herein may facilitate increased productivity, improvedemployee wellness, reduced energy costs, improved safety, and/or thelike.

Building and HVAC Systems

Referring particularly to FIG. 1, a perspective view of a building 10 isshown. Building 10 is served by a BMS. A BMS is, in general, a system ofdevices configured to control, monitor, and manage equipment in oraround a building or building area. A BMS can include, for example, aHVAC system, a security system, a lighting system, a fire alertingsystem, any other system that is capable of managing building functionsor devices, or any combination thereof.

The BMS that serves building 10 includes a HVAC system 100. HVAC system100 can include a plurality of HVAC devices (e.g., heaters, chillers,air handling units, pumps, fans, thermal energy storage, etc.)configured to provide heating, cooling, ventilation, or other servicesfor building 10. For example, HVAC system 100 is shown to include awaterside system 120 and an airside system 130. Waterside system 120 mayprovide a heated or chilled fluid to an air handling unit of airsidesystem 130. Airside system 130 may use the heated or chilled fluid toheat or cool an airflow provided to building 10. An exemplary watersidesystem and airside system which can be used in HVAC system 100 aredescribed in greater detail with reference to FIGS. 2-3.

HVAC system 100 is shown to include a chiller 102, a boiler 104, and arooftop air handling unit (AHU) 106. Waterside system 120 may use boiler104 and chiller 102 to heat or cool a working fluid (e.g., water,glycol, etc.) and may circulate the working fluid to AHU 106. In variousembodiments, the HVAC devices of waterside system 120 can be located inor around building 10 (as shown in FIG. 1) or at an offsite locationsuch as a central plant (e.g., a chiller plant, a steam plant, a heatplant, etc.). The working fluid can be heated in boiler 104 or cooled inchiller 102, depending on whether heating or cooling is required inbuilding 10. Boiler 104 may add heat to the circulated fluid, forexample, by burning a combustible material (e.g., natural gas) or usingan electric heating element. Chiller 102 may place the circulated fluidin a heat exchange relationship with another fluid (e.g., a refrigerant)in a heat exchanger (e.g., an evaporator) to absorb heat from thecirculated fluid. The working fluid from chiller 102 and/or boiler 104can be transported to AHU 106 via piping 108.

AHU 106 may place the working fluid in a heat exchange relationship withan airflow passing through AHU 106 (e.g., via one or more stages ofcooling coils and/or heating coils). The airflow can be, for example,outside air, return air from within building 10, or a combination ofboth. AHU 106 may transfer heat between the airflow and the workingfluid to provide heating or cooling for the airflow. For example, AHU106 can include one or more fans or blowers configured to pass theairflow over or through a heat exchanger containing the working fluid.The working fluid may then return to chiller 102 or boiler 104 viapiping 110.

Airside system 130 may deliver the airflow supplied by AHU 106 (i.e.,the supply airflow) to building 10 via air supply ducts 112 and mayprovide return air from building 10 to AHU 106 via air return ducts 114.In some embodiments, airside system 130 includes multiple variable airvolume (VAV) units 116. For example, airside system 130 is shown toinclude a separate VAV unit 116 on each floor or zone of building 10.VAV units 116 can include dampers or other flow control elements thatcan be operated to control an amount of the supply airflow provided toindividual zones of building 10. In other embodiments, airside system130 delivers the supply airflow into one or more zones of building 10(e.g., via supply ducts 112) without using intermediate VAV units 116 orother flow control elements. AHU 106 can include various sensors (e.g.,temperature sensors, pressure sensors, etc.) configured to measureattributes of the supply airflow. AHU 106 may receive input from sensorslocated within AHU 106 and/or within the building zone and may adjustthe flow rate, temperature, or other attributes of the supply airflowthrough AHU 106 to achieve setpoint conditions for the building zone.

Waterside System

Referring now to FIG. 2, a block diagram of a waterside system 200 isshown, according to some embodiments. In various embodiments, watersidesystem 200 may supplement or replace waterside system 120 in HVAC system100 or can be implemented separate from HVAC system 100. Whenimplemented in HVAC system 100, waterside system 200 can include asubset of the HVAC devices in HVAC system 100 (e.g., boiler 104, chiller102, pumps, valves, etc.) and may operate to supply a heated or chilledfluid to AHU 106. The HVAC devices of waterside system 200 can belocated within building 10 (e.g., as components of waterside system 120)or at an offsite location such as a central plant.

In FIG. 2, waterside system 200 is shown as a central plant having aplurality of subplants 202-212. Subplants 202-212 are shown to include aheater subplant 202, a heat recovery chiller subplant 204, a chillersubplant 206, a cooling tower subplant 208, a hot thermal energy storage(TES) subplant 210, and a cold thermal energy storage (TES) subplant212. Subplants 202-212 consume resources (e.g., water, natural gas,electricity, etc.) from utilities to serve thermal energy loads (e.g.,hot water, cold water, heating, cooling, etc.) of a building or campus.For example, heater subplant 202 can be configured to heat water in ahot water loop 214 that circulates the hot water between heater subplant202 and building 10. Chiller subplant 206 can be configured to chillwater in a cold water loop 216 that circulates the cold water betweenchiller subplant 206 building 10. Heat recovery chiller subplant 204 canbe configured to transfer heat from cold water loop 216 to hot waterloop 214 to provide additional heating for the hot water and additionalcooling for the cold water. Condenser water loop 218 may absorb heatfrom the cold water in chiller subplant 206 and reject the absorbed heatin cooling tower subplant 208 or transfer the absorbed heat to hot waterloop 214. Hot TES subplant 210 and cold TES subplant 212 may store hotand cold thermal energy, respectively, for subsequent use.

Hot water loop 214 and cold water loop 216 may deliver the heated and/orchilled water to air handlers located on the rooftop of building 10(e.g., AHU 106) or to individual floors or zones of building 10 (e.g.,VAV units 116). The air handlers push air past heat exchangers (e.g.,heating coils or cooling coils) through which the water flows to provideheating or cooling for the air. The heated or cooled air can bedelivered to individual zones of building 10 to serve thermal energyloads of building 10. The water then returns to subplants 202-212 toreceive further heating or cooling.

Although subplants 202-212 are shown and described as heating andcooling water for circulation to a building, it is understood that anyother type of working fluid (e.g., glycol, CO2, etc.) can be used inplace of or in addition to water to serve thermal energy loads. In otherembodiments, subplants 202-212 may provide heating and/or coolingdirectly to the building or campus without requiring an intermediateheat transfer fluid. These and other variations to waterside system 200are within the teachings of the present disclosure.

Each of subplants 202-212 can include a variety of equipment configuredto facilitate the functions of the subplant. For example, heatersubplant 202 is shown to include a plurality of heating elements 220(e.g., boilers, electric heaters, etc.) configured to add heat to thehot water in hot water loop 214. Heater subplant 202 is also shown toinclude several pumps 222 and 224 configured to circulate the hot waterin hot water loop 214 and to control the flow rate of the hot waterthrough individual heating elements 220. Chiller subplant 206 is shownto include a plurality of chillers 232 configured to remove heat fromthe cold water in cold water loop 216. Chiller subplant 206 is alsoshown to include several pumps 234 and 236 configured to circulate thecold water in cold water loop 216 and to control the flow rate of thecold water through individual chillers 232.

Heat recovery chiller subplant 204 is shown to include a plurality ofheat recovery heat exchangers 226 (e.g., refrigeration circuits)configured to transfer heat from cold water loop 216 to hot water loop214. Heat recovery chiller subplant 204 is also shown to include severalpumps 228 and 230 configured to circulate the hot water and/or coldwater through heat recovery heat exchangers 226 and to control the flowrate of the water through individual heat recovery heat exchangers 226.Cooling tower subplant 208 is shown to include a plurality of coolingtowers 238 configured to remove heat from the condenser water incondenser water loop 218. Cooling tower subplant 208 is also shown toinclude several pumps 240 configured to circulate the condenser water incondenser water loop 218 and to control the flow rate of the condenserwater through individual cooling towers 238.

Hot TES subplant 210 is shown to include a hot TES tank 242 configuredto store the hot water for later use. Hot TES subplant 210 may alsoinclude one or more pumps or valves configured to control the flow rateof the hot water into or out of hot TES tank 242. Cold TES subplant 212is shown to include cold TES tanks 244 configured to store the coldwater for later use. Cold TES subplant 212 may also include one or morepumps or valves configured to control the flow rate of the cold waterinto or out of cold TES tanks 244.

In some embodiments, one or more of the pumps in waterside system 200(e.g., pumps 222, 224, 228, 230, 234, 236, and/or 240) or pipelines inwaterside system 200 include an isolation valve associated therewith.Isolation valves can be integrated with the pumps or positioned upstreamor downstream of the pumps to control the fluid flows in watersidesystem 200. In various embodiments, waterside system 200 can includemore, fewer, or different types of devices and/or subplants based on theparticular configuration of waterside system 200 and the types of loadsserved by waterside system 200.

Airside System

Referring now to FIG. 3, a block diagram of an airside system 300 isshown, according to some embodiments. In various embodiments, airsidesystem 300 may supplement or replace airside system 130 in HVAC system100 or can be implemented separate from HVAC system 100. Whenimplemented in HVAC system 100, airside system 300 can include a subsetof the HVAC devices in HVAC system 100 (e.g., AHU 106, VAV units 116,ducts 112-114, fans, dampers, etc.) and can be located in or aroundbuilding 10. Airside system 300 may operate to heat or cool an airflowprovided to building 10 using a heated or chilled fluid provided bywaterside system 200.

In FIG. 3, airside system 300 is shown to include an economizer-type airhandling unit (AHU) 302. Economizer-type AHUs vary the amount of outsideair and return air used by the air handling unit for heating or cooling.For example, AHU 302 may receive return air 304 from building zone 306via return air duct 308 and may deliver supply air 310 to building zone306 via supply air duct 312. In some embodiments, AHU 302 is a rooftopunit located on the roof of building 10 (e.g., AHU 106 as shown inFIG. 1) or otherwise positioned to receive both return air 304 andoutside air 314. AHU 302 can be configured to operate exhaust air damper316, mixing damper 318, and outside air damper 320 to control an amountof outside air 314 and return air 304 that combine to form supply air310. Any return air 304 that does not pass through mixing damper 318 canbe exhausted from AHU 302 through exhaust damper 316 as exhaust air 322.

Each of dampers 316-320 can be operated by an actuator. For example,exhaust air damper 316 can be operated by actuator 324, mixing damper318 can be operated by actuator 326, and outside air damper 320 can beoperated by actuator 328. Actuators 324-328 may communicate with an AHUcontroller 330 via a communications link 332. Actuators 324-328 mayreceive control signals from AHU controller 330 and may provide feedbacksignals to AHU controller 330. Feedback signals can include, forexample, an indication of a current actuator or damper position, anamount of torque or force exerted by the actuator, diagnosticinformation (e.g., results of diagnostic tests performed by actuators324-328), status information, commissioning information, configurationsettings, calibration data, and/or other types of information or datathat can be collected, stored, or used by actuators 324-328. AHUcontroller 330 can be an economizer controller configured to use one ormore control algorithms (e.g., state-based algorithms, extremum seekingcontrol (ESC) algorithms, proportional-integral (PI) control algorithms,proportional-integral-derivative (PID) control algorithms, modelpredictive control (MPC) algorithms, feedback control algorithms, etc.)to control actuators 324-328.

Still referring to FIG. 3, AHU 302 is shown to include a cooling coil334, a heating coil 336, and a fan 338 positioned within supply air duct312. Fan 338 can be configured to force supply air 310 through coolingcoil 334 and/or heating coil 336 and provide supply air 310 to buildingzone 306. AHU controller 330 may communicate with fan 338 viacommunications link 340 to control a flow rate of supply air 310. Insome embodiments, AHU controller 330 controls an amount of heating orcooling applied to supply air 310 by modulating a speed of fan 338.

Cooling coil 334 may receive a chilled fluid from waterside system 200(e.g., from cold water loop 216) via piping 342 and may return thechilled fluid to waterside system 200 via piping 344. Valve 346 can bepositioned along piping 342 or piping 344 to control a flow rate of thechilled fluid through cooling coil 334. In some embodiments, coolingcoil 334 includes multiple stages of cooling coils that can beindependently activated and deactivated (e.g., by AHU controller 330, byBMS controller 366, etc.) to modulate an amount of cooling applied tosupply air 310.

Heating coil 336 may receive a heated fluid from waterside system 200(e.g., from hot water loop 214) via piping 348 and may return the heatedfluid to waterside system 200 via piping 350. Valve 352 can bepositioned along piping 348 or piping 350 to control a flow rate of theheated fluid through heating coil 336. In some embodiments, heating coil336 includes multiple stages of heating coils that can be independentlyactivated and deactivated (e.g., by AHU controller 330, by BMScontroller 366, etc.) to modulate an amount of heating applied to supplyair 310.

Each of valves 346 and 352 can be controlled by an actuator. Forexample, valve 346 can be controlled by actuator 354 and valve 352 canbe controlled by actuator 356. Actuators 354-356 may communicate withAHU controller 330 via communications links 358-360. Actuators 354-356may receive control signals from AHU controller 330 and may providefeedback signals to controller 330. In some embodiments, AHU controller330 receives a measurement of the supply air temperature from atemperature sensor 362 positioned in supply air duct 312 (e.g.,downstream of cooling coil 334 and/or heating coil 336). AHU controller330 may also receive a measurement of the temperature of building zone306 from a temperature sensor 364 located in building zone 306.

In some embodiments, AHU controller 330 operates valves 346 and 352 viaactuators 354-356 to modulate an amount of heating or cooling providedto supply air 310 (e.g., to achieve a setpoint temperature for supplyair 310 or to maintain the temperature of supply air 310 within asetpoint temperature range). The positions of valves 346 and 352 affectthe amount of heating or cooling provided to supply air 310 by coolingcoil 334 or heating coil 336 and may correlate with the amount of energyconsumed to achieve a desired supply air temperature. AHU 330 maycontrol the temperature of supply air 310 and/or building zone 306 byactivating or deactivating coils 334-336, adjusting a speed of fan 338,or a combination of both.

Still referring to FIG. 3, airside system 300 is shown to include abuilding management system (BMS) controller 366 and a client device 368.BMS controller 366 can include one or more computer systems (e.g.,servers, supervisory controllers, subsystem controllers, etc.) thatserve as system level controllers, application or data servers, headnodes, or master controllers for airside system 300, waterside system200, HVAC system 100, and/or other controllable systems that servebuilding 10. BMS controller 366 may communicate with multiple downstreambuilding systems or subsystems (e.g., HVAC system 100, a securitysystem, a lighting system, waterside system 200, etc.) via acommunications link 370 according to like or disparate protocols (e.g.,LON, BACnet, etc.). In various embodiments, AHU controller 330 and BMScontroller 366 can be separate (as shown in FIG. 3) or integrated. In anintegrated implementation, AHU controller 330 can be a software moduleconfigured for execution by a processor of BMS controller 366.

In some embodiments, AHU controller 330 receives information from BMScontroller 366 (e.g., commands, setpoints, operating boundaries, etc.)and provides information to BMS controller 366 (e.g., temperaturemeasurements, valve or actuator positions, operating statuses,diagnostics, etc.). For example, AHU controller 330 may provide BMScontroller 366 with temperature measurements from temperature sensors362-364, equipment on/off states, equipment operating capacities, and/orany other information that can be used by BMS controller 366 to monitoror control a variable state or condition within building zone 306.

Client device 368 can include one or more human-machine interfaces orclient interfaces (e.g., graphical user interfaces, reportinginterfaces, text-based computer interfaces, client-facing web services,web servers that provide pages to web clients, etc.) for controlling,viewing, or otherwise interacting with HVAC system 100, its subsystems,and/or devices. Client device 368 can be a computer workstation, aclient terminal, a remote or local interface, or any other type of userinterface device. Client device 368 can be a stationary terminal or amobile device. For example, client device 368 can be a desktop computer,a computer server with a user interface, a laptop computer, a tablet, asmartphone, a PDA, or any other type of mobile or non-mobile device.Client device 368 may communicate with BMS controller 366 and/or AHUcontroller 330 via communications link 372.

Building Management Systems

Referring now to FIG. 4, a block diagram of a building management system(BMS) 400 is shown, according to some embodiments. BMS 400 can beimplemented in building 10 to automatically monitor and control variousbuilding functions. BMS 400 is shown to include BMS controller 366 and aplurality of building subsystems 428. Building subsystems 428 are shownto include a building electrical subsystem 434, an informationcommunication technology (ICT) subsystem 436, a security subsystem 438,a HVAC subsystem 440, a lighting subsystem 442, a lift/escalatorssubsystem 432, and a fire safety subsystem 430. In various embodiments,building subsystems 428 can include fewer, additional, or alternativesubsystems. For example, building subsystems 428 may also oralternatively include a refrigeration subsystem, an advertising orsignage subsystem, a cooking subsystem, a vending subsystem, a printeror copy service subsystem, or any other type of building subsystem thatuses controllable equipment and/or sensors to monitor or controlbuilding 10. In some embodiments, building subsystems 428 includewaterside system 200 and/or airside system 300, as described withreference to FIGS. 2-3.

Each of building subsystems 428 can include any number of devices,controllers, and connections for completing its individual functions andcontrol activities. HVAC subsystem 440 can include many of the samecomponents as HVAC system 100, as described with reference to FIGS. 1-3.For example, HVAC subsystem 440 can include a chiller, a boiler, anynumber of air handling units, economizers, field controllers,supervisory controllers, actuators, temperature sensors, and otherdevices for controlling the temperature, humidity, airflow, or othervariable conditions within building 10. Lighting subsystem 442 caninclude any number of light fixtures, ballasts, lighting sensors,dimmers, or other devices configured to controllably adjust the amountof light provided to a building space. Security subsystem 438 caninclude occupancy sensors, video surveillance cameras, digital videorecorders, video processing servers, intrusion detection devices, accesscontrol devices and servers, or other security-related devices.

Still referring to FIG. 4, BMS controller 366 is shown to include acommunications interface 407 and a BMS interface 409. Interface 407 mayfacilitate communications between BMS controller 366 and externalapplications (e.g., monitoring and reporting applications 422,enterprise control applications 426, remote systems and applications444, applications residing on client devices 448, etc.) for allowinguser control, monitoring, and adjustment to BMS controller 366 and/orsubsystems 428. Interface 407 may also facilitate communications betweenBMS controller 366 and client devices 448. BMS interface 409 mayfacilitate communications between BMS controller 366 and buildingsubsystems 428 (e.g., HVAC, lighting security, lifts, powerdistribution, business, etc.).

Interfaces 407, 409 can be or include wired or wireless communicationsinterfaces (e.g., jacks, antennas, transmitters, receivers,transceivers, wire terminals, etc.) for conducting data communicationswith building subsystems 428 or other external systems or devices. Invarious embodiments, communications via interfaces 407, 409 can bedirect (e.g., local wired or wireless communications) or via acommunications network 446 (e.g., a WAN, the Internet, a cellularnetwork, etc.). For example, interfaces 407, 409 can include an Ethernetcard and port for sending and receiving data via an Ethernet-basedcommunications link or network. In another example, interfaces 407, 409can include a Wi-Fi transceiver for communicating via a wirelesscommunications network. In another example, one or both of interfaces407, 409 can include cellular or mobile phone communicationstransceivers. In some embodiments, communications interface 407 is apower line communications interface and BMS interface 409 is an Ethernetinterface. In other embodiments, both communications interface 407 andBMS interface 409 are Ethernet interfaces or are the same Ethernetinterface.

Still referring to FIG. 4, BMS controller 366 is shown to include aprocessing circuit 404 including a processor 406 and memory 408.Processing circuit 404 can be communicably connected to BMS interface409 and/or communications interface 407 such that processing circuit 404and the various components thereof can send and receive data viainterfaces 407, 409. Processor 406 can be implemented as a generalpurpose processor, an application specific integrated circuit (ASIC),one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable electronic processingcomponents.

Memory 408 (e.g., memory, memory unit, storage device, etc.) can includeone or more devices (e.g., RAM, ROM, Flash memory, hard disk storage,etc.) for storing data and/or computer code for completing orfacilitating the various processes, layers and modules described in thepresent application. Memory 408 can be or include volatile memory ornon-volatile memory. Memory 408 can include database components, objectcode components, script components, or any other type of informationstructure for supporting the various activities and informationstructures described in the present application. According to someembodiments, memory 408 is communicably connected to processor 406 viaprocessing circuit 404 and includes computer code for executing (e.g.,by processing circuit 404 and/or processor 406) one or more processesdescribed herein.

In some embodiments, BMS controller 366 is implemented within a singlecomputer (e.g., one server, one housing, etc.). In various otherembodiments BMS controller 366 can be distributed across multipleservers or computers (e.g., that can exist in distributed locations).Further, while FIG. 4 shows applications 422 and 426 as existing outsideof BMS controller 366, in some embodiments, applications 422 and 426 canbe hosted within BMS controller 366 (e.g., within memory 408).

Still referring to FIG. 4, memory 408 is shown to include an enterpriseintegration layer 410, an automated measurement and validation (AM&V)layer 412, a demand response (DR) layer 414, a fault detection anddiagnostics (FDD) layer 416, an integrated control layer 418, and abuilding subsystem integration later 420. Layers 410-420 can beconfigured to receive inputs from building subsystems 428 and other datasources, determine control actions for building subsystems 428 based onthe inputs, generate control signals based on the determined controlactions, and provide the generated control signals to buildingsubsystems 428. The following paragraphs describe some of the generalfunctions performed by each of layers 410-420 in BMS 400.

Enterprise integration layer 410 can be configured to serve clients orlocal applications with information and services to support a variety ofenterprise-level applications. For example, enterprise controlapplications 426 can be configured to provide subsystem-spanning controlto a graphical user interface (GUI) or to any number of enterprise-levelbusiness applications (e.g., accounting systems, user identificationsystems, etc.). Enterprise control applications 426 may also oralternatively be configured to provide configuration GUIs forconfiguring BMS controller 366. In yet other embodiments, enterprisecontrol applications 426 can work with layers 410-420 to optimizebuilding performance (e.g., efficiency, energy use, comfort, or safety)based on inputs received at interface 407 and/or BMS interface 409.

Building subsystem integration layer 420 can be configured to managecommunications between BMS controller 366 and building subsystems 428.For example, building subsystem integration layer 420 may receive sensordata and input signals from building subsystems 428 and provide outputdata and control signals to building subsystems 428. Building subsystemintegration layer 420 may also be configured to manage communicationsbetween building subsystems 428. Building subsystem integration layer420 translate communications (e.g., sensor data, input signals, outputsignals, etc.) across a plurality of multi-vendor/multi-protocolsystems.

Demand response layer 414 can be configured to optimize resource usage(e.g., electricity use, natural gas use, water use, etc.) and/or themonetary cost of such resource usage in response to satisfy the demandof building 10. The optimization can be based on time-of-use prices,curtailment signals, energy availability, or other data received fromutility providers, distributed energy generation systems 424, fromenergy storage 427 (e.g., hot TES 242, cold TES 244, etc.), or fromother sources. Demand response layer 414 may receive inputs from otherlayers of BMS controller 366 (e.g., building subsystem integration layer420, integrated control layer 418, etc.). The inputs received from otherlayers can include environmental or sensor inputs such as temperature,carbon dioxide levels, relative humidity levels, air quality sensoroutputs, occupancy sensor outputs, room schedules, and the like. Theinputs may also include inputs such as electrical use (e.g., expressedin kWh), thermal load measurements, pricing information, projectedpricing, smoothed pricing, curtailment signals from utilities, and thelike.

According to some embodiments, demand response layer 414 includescontrol logic for responding to the data and signals it receives. Theseresponses can include communicating with the control algorithms inintegrated control layer 418, changing control strategies, changingsetpoints, or activating/deactivating building equipment or subsystemsin a controlled manner. Demand response layer 414 may also includecontrol logic configured to determine when to utilize stored energy. Forexample, demand response layer 414 may determine to begin using energyfrom energy storage 427 just prior to the beginning of a peak use hour.

In some embodiments, demand response layer 414 includes a control moduleconfigured to actively initiate control actions (e.g., automaticallychanging setpoints) which reduce energy costs based on one or moreinputs representative of or based on demand (e.g., price, a curtailmentsignal, a demand level, etc.). In some embodiments, demand responselayer 414 uses equipment models to determine a set of control actions.The equipment models can include, for example, thermodynamic modelsdescribing the inputs, outputs, and/or functions performed by varioussets of building equipment. Equipment models may represent collectionsof building equipment (e.g., subplants, chiller arrays, etc.) orindividual devices (e.g., individual chillers, heaters, pumps, etc.).

Demand response layer 414 may further include or draw upon one or moredemand response policy definitions (e.g., databases, XML, files, etc.).The policy definitions can be edited or adjusted by a user (e.g., via agraphical user interface) so that the control actions initiated inresponse to demand inputs can be tailored for the user's application,desired comfort level, particular building equipment, or based on otherconcerns. For example, the demand response policy definitions canspecify which equipment can be turned on or off in response toparticular demand inputs, how long a system or piece of equipment shouldbe turned off, what setpoints can be changed, what the allowable setpoint adjustment range is, how long to hold a high demand setpointbefore returning to a normally scheduled setpoint, how close to approachcapacity limits, which equipment modes to utilize, the energy transferrates (e.g., the maximum rate, an alarm rate, other rate boundaryinformation, etc.) into and out of energy storage devices (e.g., thermalstorage tanks, battery banks, etc.), and when to dispatch on-sitegeneration of energy (e.g., via fuel cells, a motor generator set,etc.).

Integrated control layer 418 can be configured to use the data input oroutput of building subsystem integration layer 420 and/or demandresponse later 414 to make control decisions. Due to the subsystemintegration provided by building subsystem integration layer 420,integrated control layer 418 can integrate control activities of thesubsystems 428 such that the subsystems 428 behave as a singleintegrated supersystem. In some embodiments, integrated control layer418 includes control logic that uses inputs and outputs from a pluralityof building subsystems to provide greater comfort and energy savingsrelative to the comfort and energy savings that separate subsystemscould provide alone. For example, integrated control layer 418 can beconfigured to use an input from a first subsystem to make anenergy-saving control decision for a second subsystem. Results of thesedecisions can be communicated back to building subsystem integrationlayer 420.

Integrated control layer 418 is shown to be logically below demandresponse layer 414. Integrated control layer 418 can be configured toenhance the effectiveness of demand response layer 414 by enablingbuilding subsystems 428 and their respective control loops to becontrolled in coordination with demand response layer 414. Thisconfiguration may advantageously reduce disruptive demand responsebehavior relative to conventional systems. For example, integratedcontrol layer 418 can be configured to assure that a demandresponse-driven upward adjustment to the setpoint for chilled watertemperature (or another component that directly or indirectly affectstemperature) does not result in an increase in fan energy (or otherenergy used to cool a space) that would result in greater total buildingenergy use than was saved at the chiller.

Integrated control layer 418 can be configured to provide feedback todemand response layer 414 so that demand response layer 414 checks thatconstraints (e.g., temperature, lighting levels, etc.) are properlymaintained even while demanded load shedding is in progress. Theconstraints may also include setpoint or sensed boundaries relating tosafety, equipment operating limits and performance, comfort, fire codes,electrical codes, energy codes, and the like. Integrated control layer418 is also logically below fault detection and diagnostics layer 416and automated measurement and validation layer 412. Integrated controllayer 418 can be configured to provide calculated inputs (e.g.,aggregations) to these higher levels based on outputs from more than onebuilding subsystem.

Automated measurement and validation (AM&V) layer 412 can be configuredto verify that control strategies commanded by integrated control layer418 or demand response layer 414 are working properly (e.g., using dataaggregated by AM&V layer 412, integrated control layer 418, buildingsubsystem integration layer 420, FDD layer 416, or otherwise). Thecalculations made by AM&V layer 412 can be based on building systemenergy models and/or equipment models for individual BMS devices orsubsystems. For example, AM&V layer 412 may compare a model-predictedoutput with an actual output from building subsystems 428 to determinean accuracy of the model.

Fault detection and diagnostics (FDD) layer 416 can be configured toprovide on-going fault detection for building subsystems 428, buildingsubsystem devices (i.e., building equipment), and control algorithmsused by demand response layer 414 and integrated control layer 418. FDDlayer 416 may receive data inputs from integrated control layer 418,directly from one or more building subsystems or devices, or fromanother data source. FDD layer 416 may automatically diagnose andrespond to detected faults. The responses to detected or diagnosedfaults can include providing an alert message to a user, a maintenancescheduling system, or a control algorithm configured to attempt torepair the fault or to work-around the fault.

FDD layer 416 can be configured to output a specific identification ofthe faulty component or cause of the fault (e.g., loose damper linkage)using detailed subsystem inputs available at building subsystemintegration layer 420. In other exemplary embodiments, FDD layer 416 isconfigured to provide “fault” events to integrated control layer 418which executes control strategies and policies in response to thereceived fault events. According to some embodiments, FDD layer 416 (ora policy executed by an integrated control engine or business rulesengine) may shut-down systems or direct control activities around faultydevices or systems to reduce energy waste, extend equipment life, orassure proper control response.

FDD layer 416 can be configured to store or access a variety ofdifferent system data stores (or data points for live data). FDD layer416 may use some content of the data stores to identify faults at theequipment level (e.g., specific chiller, specific AHU, specific terminalunit, etc.) and other content to identify faults at component orsubsystem levels. For example, building subsystems 428 may generatetemporal (i.e., time-series) data indicating the performance of BMS 400and the various components thereof. The data generated by buildingsubsystems 428 can include measured or calculated values that exhibitstatistical characteristics and provide information about how thecorresponding system or process (e.g., a temperature control process, aflow control process, etc.) is performing in terms of error from itssetpoint. These processes can be examined by FDD layer 416 to exposewhen the system begins to degrade in performance and alert a user torepair the fault before it becomes more severe.

Referring now to FIG. 5, a block diagram of another building managementsystem (BMS) 500 is shown, according to some embodiments. BMS 500 can beused to monitor and control the devices of HVAC system 100, watersidesystem 200, airside system 300, building subsystems 428, as well asother types of BMS devices (e.g., lighting equipment, securityequipment, etc.) and/or HVAC equipment.

BMS 500 provides a system architecture that facilitates automaticequipment discovery and equipment model distribution. Equipmentdiscovery can occur on multiple levels of BMS 500 across multipledifferent communications busses (e.g., a system bus 554, zone buses556-560 and 564, sensor/actuator bus 566, etc.) and across multipledifferent communications protocols. In some embodiments, equipmentdiscovery is accomplished using active node tables, which provide statusinformation for devices connected to each communications bus. Forexample, each communications bus can be monitored for new devices bymonitoring the corresponding active node table for new nodes. When a newdevice is detected, BMS 500 can begin interacting with the new device(e.g., sending control signals, using data from the device) without userinteraction.

Some devices in BMS 500 present themselves to the network usingequipment models. An equipment model defines equipment objectattributes, view definitions, schedules, trends, and the associatedBACnet value objects (e.g., analog value, binary value, multistatevalue, etc.) that are used for integration with other systems. Somedevices in BMS 500 store their own equipment models. Other devices inBMS 500 have equipment models stored externally (e.g., within otherdevices). For example, a zone coordinator 508 can store the equipmentmodel for a bypass damper 528. In some embodiments, zone coordinator 508automatically creates the equipment model for bypass damper 528 or otherdevices on zone bus 558. Other zone coordinators can also createequipment models for devices connected to their zone busses. Theequipment model for a device can be created automatically based on thetypes of data points exposed by the device on the zone bus, device type,and/or other device attributes. Several examples of automatic equipmentdiscovery and equipment model distribution are discussed in greaterdetail below.

Still referring to FIG. 5, BMS 500 is shown to include a system manager502; several zone coordinators 506, 508, 510 and 518; and several zonecontrollers 524, 530, 532, 536, 548, and 550. System manager 502 canmonitor data points in BMS 500 and report monitored variables to variousmonitoring and/or control applications. System manager 502 cancommunicate with client devices 504 (e.g., user devices, desktopcomputers, laptop computers, mobile devices, etc.) via a datacommunications link 574 (e.g., BACnet IP, Ethernet, wired or wirelesscommunications, etc.). System manager 502 can provide a user interfaceto client devices 504 via data communications link 574. The userinterface may allow users to monitor and/or control BMS 500 via clientdevices 504.

In some embodiments, system manager 502 is connected with zonecoordinators 506-510 and 518 via a system bus 554. System manager 502can be configured to communicate with zone coordinators 506-510 and 518via system bus 554 using a master-slave token passing (MSTP) protocol orany other communications protocol. System bus 554 can also connectsystem manager 502 with other devices such as a constant volume (CV)rooftop unit (RTU) 512, an input/output module (IOM) 514, a thermostatcontroller 516 (e.g., a TEC5000 series thermostat controller), and anetwork automation engine (NAE) or third-party controller 520. RTU 512can be configured to communicate directly with system manager 502 andcan be connected directly to system bus 554. Other RTUs can communicatewith system manager 502 via an intermediate device. For example, a wiredinput 562 can connect a third-party RTU 542 to thermostat controller516, which connects to system bus 554.

System manager 502 can provide a user interface for any devicecontaining an equipment model. Devices such as zone coordinators 506-510and 518 and thermostat controller 516 can provide their equipment modelsto system manager 502 via system bus 554. In some embodiments, systemmanager 502 automatically creates equipment models for connected devicesthat do not contain an equipment model (e.g., IOM 514, third partycontroller 520, etc.). For example, system manager 502 can create anequipment model for any device that responds to a device tree request.The equipment models created by system manager 502 can be stored withinsystem manager 502. System manager 502 can then provide a user interfacefor devices that do not contain their own equipment models using theequipment models created by system manager 502. In some embodiments,system manager 502 stores a view definition for each type of equipmentconnected via system bus 554 and uses the stored view definition togenerate a user interface for the equipment.

Each zone coordinator 506-510 and 518 can be connected with one or moreof zone controllers 524, 530-532, 536, and 548-550 via zone buses 556,558, 560, and 564. Zone coordinators 506-510 and 518 can communicatewith zone controllers 524, 530-532, 536, and 548-550 via zone busses556-560 and 564 using a MSTP protocol or any other communicationsprotocol. Zone busses 556-560 and 564 can also connect zone coordinators506-510 and 518 with other types of devices such as variable air volume(VAV) RTUs 522 and 540, changeover bypass (COBP) RTUs 526 and 552,bypass dampers 528 and 546, and PEAK controllers 534 and 544.

Zone coordinators 506-510 and 518 can be configured to monitor andcommand various zoning systems. In some embodiments, each zonecoordinator 506-510 and 518 monitors and commands a separate zoningsystem and is connected to the zoning system via a separate zone bus.For example, zone coordinator 506 can be connected to VAV RTU 522 andzone controller 524 via zone bus 556. Zone coordinator 508 can beconnected to COBP RTU 526, bypass damper 528, COBP zone controller 530,and VAV zone controller 532 via zone bus 558. Zone coordinator 510 canbe connected to PEAK controller 534 and VAV zone controller 536 via zonebus 560. Zone coordinator 518 can be connected to PEAK controller 544,bypass damper 546, COBP zone controller 548, and VAV zone controller 550via zone bus 564.

A single model of zone coordinator 506-510 and 518 can be configured tohandle multiple different types of zoning systems (e.g., a VAV zoningsystem, a COBP zoning system, etc.). Each zoning system can include aRTU, one or more zone controllers, and/or a bypass damper. For example,zone coordinators 506 and 510 are shown as Verasys VAV engines (VVEs)connected to VAV RTUs 522 and 540, respectively. Zone coordinator 506 isconnected directly to VAV RTU 522 via zone bus 556, whereas zonecoordinator 510 is connected to a third-party VAV RTU 540 via a wiredinput 568 provided to PEAK controller 534. Zone coordinators 508 and 518are shown as Verasys COBP engines (VCEs) connected to COBP RTUs 526 and552, respectively. Zone coordinator 508 is connected directly to COBPRTU 526 via zone bus 558, whereas zone coordinator 518 is connected to athird-party COBP RTU 552 via a wired input 570 provided to PEAKcontroller 544.

Zone controllers 524, 530-532, 536, and 548-550 can communicate withindividual BMS devices (e.g., sensors, actuators, etc.) viasensor/actuator (SA) busses. For example, VAV zone controller 536 isshown connected to networked sensors 538 via SA bus 566. Zone controller536 can communicate with networked sensors 538 using a MSTP protocol orany other communications protocol. Although only one SA bus 566 is shownin FIG. 5, it should be understood that each zone controller 524,530-532, 536, and 548-550 can be connected to a different SA bus. EachSA bus can connect a zone controller with various sensors (e.g.,temperature sensors, humidity sensors, pressure sensors, light sensors,occupancy sensors, etc.), actuators (e.g., damper actuators, valveactuators, etc.) and/or other types of controllable equipment (e.g.,chillers, heaters, fans, pumps, etc.).

Each zone controller 524, 530-532, 536, and 548-550 can be configured tomonitor and control a different building zone. Zone controllers 524,530-532, 536, and 548-550 can use the inputs and outputs provided viatheir SA busses to monitor and control various building zones. Forexample, a zone controller 536 can use a temperature input received fromnetworked sensors 538 via SA bus 566 (e.g., a measured temperature of abuilding zone) as feedback in a temperature control algorithm. Zonecontrollers 524, 530-532, 536, and 548-550 can use various types ofcontrol algorithms (e.g., state-based algorithms, extremum seekingcontrol (ESC) algorithms, proportional-integral (PI) control algorithms,proportional-integral-derivative (PID) control algorithms, modelpredictive control (MPC) algorithms, feedback control algorithms, etc.)to control a variable state or condition (e.g., temperature, humidity,airflow, lighting, etc.) in or around building 10.

Recommendation Ranking System

Referring now to FIG. 6, ranking system 600 is shown, according to anexemplary embodiment. In various embodiments, ranking system 600 rankselements such as recommendations generated by a building managementsystem (e.g., BMS 400, BMS 500, etc.). For example, ranking system 600may rank recommendations associated with employee productivity such as arecommendation to increase the temperature in a room to improve employeecomfort based on (i) feedback from employees that they are too cold and(ii) a correlated decrease in productivity associated with employees inthe room. As another example, ranking system 600 may rankrecommendations associated with space utilization such as arecommendation to move an employee's desk from a first room to a secondroom based on (i) the second room being closer the employee's mostcommonly emailed colleagues and (ii) the second room being closer to aconference room that the employee visits daily. As another example,ranking system 600 may rank employee productivity recommendations suchas those discussed in U.S. patent application Ser. No. 16/746,316 filedon Jan. 17, 2020, the entire disclosure of which is incorporated byreference herein. As another example, ranking system 600 may rankrecommendations associated with faults. For example, a buildingmanagement system (BMS) may detect a faulty sensor in an AHU and maygenerate a fault associated with the AHU, and ranking system 600 mayrank a recommendation associated with fixing the fault generated by theBMS. In some embodiments, recommendations are associated with faultsthat have occurred. Additionally or alternatively, ranking system 600may rank recommendations associated with predicted faults (e.g., faultsthat have yet to occur but are predicted to occur, etc.). In variousembodiments, ranking system 600 ranks recommendations based on variousfactors. For example, ranking system 600 may execute an importance,tractability, neglectedness (ITN) framework. As another example, rankingsystem 600 may rank recommendations based on context informationassociated with each recommendation.

Ranking system 600 is shown to include communications interface 602,processing circuit 604, and database 630. Communications interface 602is configured to facilitate communication between ranking system 600 andexternal systems. For example, communications interface 602 mayfacilitate communication between ranking system 600 and a client device(e.g., one of client devices 448, etc.) configured to displayrecommendations to a building operator. In various embodiments, rankingsystem 600 communicates using network 650. Network 650 may includehardware, software, and/or any combination thereof. In variousembodiments, network 650 is one of a WAN, the Internet, a cellularnetwork, and/or the like. In various embodiments, ranking system 600communicates with BMS controller 366, building subsystems 428, remotesystems and applications 444, client devices 448, and/or digital twin660.

Digital twin 660 is a digital representation of spaces, assets, people,events, and/or anything associated with a building or operation thereof.In various embodiments, digital twin 660 is modeled using a graph datastructure. In various embodiments, digital twin 660 includes an activecompute process. For example, a digital twin 660 may communicate withother digital twins 660, to sense, predict, and take actions. In variousembodiments, digital twin 660 is generated dynamically. For example, adigital twin 660 corresponding to a conference room may update itsstatus by looking at occupancy sensors or an electronic calendar (e.g.,to turn its status “available” if there is no show, etc.). In variousembodiments, digital twin 660 includes context information. Contextinformation may include real-time data and a historical record of eachsystem in the environment (e.g., campus, building, facility, space,etc.). In various embodiments, context information facilitates flexibledata modeling for advanced analytics and AI application in scenariosthat model highly interconnected entities. In some embodiments, as usedherein, a “digital twin” may refer to a digital representation of asingle object or entity, such as a sensor or other piece of buildingequipment, space, person, or event. In some embodiments, “digital twin”may additionally or alternatively refer to a digital representation of agroup of objects or entities; for example, a “digital twin” of abuilding may include digital representations of multiple objects orentities contained within or otherwise associated with the building,such as building equipment of the building, people associated with thebuilding, spaces within the building, events occurring within or inassociation with the building, etc.

Database 630 is configured to store information associated with rankingsystem 600. Database 630 may be internal storage or external storage.For example, database 630 may be internal storage with relation toranking system 600, and/or may include a remote database, cloud-baseddata hosting, or other remote data storage.

Processing circuit 604 includes processor 606 and memory 608. Rankingsystem 600 may include one or more processing circuits 604 including oneor more processors 606 and memory 608. Each of the processors 606 can bea general purpose or specific purpose processor, an application specificintegrated circuit (ASIC), one or more field programmable gate arrays(FPGAs), a group of processing components, or other suitable processingcomponents. Each of the processors 606 is configured to execute computercode or instructions stored in memory 608 or received from othercomputer readable media (e.g., CDROM, network storage, a remote server,etc.).

Memory 608 may include one or more devices (e.g., memory units, memorydevices, storage devices, or other computer-readable medium) for storingdata and/or computer code for completing and/or facilitating the variousprocesses described in the present disclosure. Memory 608 may includerandom access memory (RAM), read-only memory (ROM), hard drive storage,temporary storage, non-volatile memory, flash memory, optical memory, orany other suitable memory for storing software objects and/or computerinstructions. Memory 608 may include database components, object codecomponents, script components, or any other type of informationstructure for supporting the various activities and informationstructures described in the present disclosure. Memory 608 may becommunicably connected to processor(s) 606 via processing circuit 604and may include computer code for executing (e.g., by processor 606) oneor more processes described herein.

Memory 608 is shown to include user engagement circuit 610, contextcircuit 612, scoring circuit 614, ranking circuit 616, learning circuit618, and deployment circuit 620. User engagement circuit 610 isconfigured to measure user engagement with a recommendation. Forexample, user engagement circuit 610 may measure how often a user viewsand/or interacts with (e.g., clicks on, inquires about, etc.) arecommendation. In various embodiments, user engagement circuit 610measures individual user engagement. Additionally or alternatively, userengagement circuit 610 may measure aggregate user engagement. Forexample, user engagement circuit 610 may measure how often a generalpool of users interacts with a particular recommendation type. In someembodiments, user engagement circuit 610 measures characteristicsassociated with a user interaction with recommendations. For example,user engagement circuit 610 may measure a length of time a user's cursorhovered over a recommendation. In various embodiments, user engagementcircuit 610 may share user engagement information with other systems(e.g., scoring circuit 614, ranking circuit 616, etc.). For example,user engagement circuit 610 may share a measure of how often a userinteracts with a particular type of recommendation and ranking circuit616 may rank that particular type of recommendation higher in the futurein response to determining that the particular type of recommendationhas high user engagement.

Context circuit 612 is configured to generate context data associatedwith a recommendation. For example, context circuit 612 may retrievecontext data associated with a recommendation to change a roomtemperature such as retrieving user feedback regarding the temperaturefrom employees stationed in the room (e.g., from digital twin 660, etc.)or timeseries data describing employee productivity and/or efficiencyassociated with employees stationed in the room. As another example,context circuit 612 may retrieve context data associated with arecommendation to redistribute employees in a space such as an airflowassociated with the space, a percentage of full occupancy associatedwith the space, a health score associated with the space (e.g.,describing a pathogen transmissibility rate, etc.), and/or estimatedenergy costs associated with heating a different space associated withdisplaced employees. In various embodiments, context circuit 612 tailorscontext data to the type of element being ranked. For example, forrecommendations associated with employee productivity, context circuit612 may determine context data such as (i) which recommendations willlead to increased occupant productivity (e.g., and what amount ofincrease, etc.), (ii) which recommendations are time sensitive and/orwhich recommendations a user has previously overlooked, (iii) whichrecommendations have the most impact on occupant productivity, (iv)which recommendations have an associated monetization amount (e.g., andthe monetization amount itself such as a dollar value, etc.), (v) whichrecommendations are associated with very important people (VIPs), (vi)which recommendations are associated with mission critical spaces and/orequipment, (vii) which recommendations are associated withcertifications such as maintaining an environmental certification,(viii) air quality data associated with a space associated with therecommendation, and/or (ix) which recommendations are associated withequipment having standby (e.g., backups, etc.). As another example, forrecommendations associated with space utilization, context circuit 612may determine context data such as (i) which recommendations will leadto increased space utilization, (ii) which recommendations are timesensitive and/or which recommendations a user has previously overlooked,(iii) which recommendations align multiple user preferences (e.g.,multiple users preferring a particular indoor temperature can begrouped, etc.), (iv) which recommendations group users of similar workteams (e.g., multiple users working on a project together can begrouped, etc.), and/or (v) which recommendations are associated withparticularly important spaces. In various embodiments, ranking system600 may rank recommendations associated with various entities such asspaces, people, events (e.g., meetings, calendar events, etc.), buildingparameters, and/or the like and context circuit 612 may retrieve contextdata associated with the entities. For example, a first recommendationmay be associated with a first AHU and context circuit 612 may retrievecontext data associated with the first AHU such as how many people arein spaces served by the first AHU and/or if the first AHU has afunctional backup.

Scoring circuit 614 is configured to score recommendations based onvarious factors. For example, scoring circuit 614 may score arecommendation based on context data received from context circuit 612.In various embodiments, scoring circuit 614 implements one or morescoring algorithms and/or functions to score recommendations. Forexample, scoring circuit 614 may generate a score for a recommendationassociated with space utilization according to the function:

Score=Σ(W _(IP)*IP)+(W _(NR)*NR)+(W _(RI)*RI)

where W_(IP) is a weight associated with the space utilizationimprovement potential associated with the recommendation, IP is a spaceutilization improvement potential associated with the recommendation,W_(NR) is a weight associated with the number of recommendations for theparticular space, NR is a number of recommendations for the particularspace, W_(RI) is a weight associated with the user's interest inrecommendations of a similar type (where user interest may include anindividual user interest or aggregate user interest), and RI is ameasure of the user's interest in the recommendation. As anotherexample, scoring circuit 614 may generate a score for a recommendationassociated with employee productivity according to the function:

Score=Σ(W _(FP)*FP)+(W _(OS)*OS)+(W _(PI)*PI)

where W_(FP) is a weight associated with the fault priority of a faultassociated with equipment associated with the recommendation, FP is afault priority of a fault associated with equipment associated with therecommendation, W_(OS) is a weight associated with the work order statusassociated with a work order associated with the recommendation, OS is awork order status associated with a work order associated with therecommendation, W_(PI) is a weight associated with the priority indexassociated with equipment associated with the recommendation, and PI isa priority index associated with equipment (or other entities such asspaces, people, etc.) associated with the recommendation. In variousembodiments, the one or more scoring algorithms and/or functions aretailored to the type of recommendation. In various embodiments, usersmay tag entities (e.g., spaces, people, assets, equipment, etc.) asmission critical and ranking system 600 may identify the missioncritical tag as part of retrieving context data and may change a scoreassociated with a recommendation associated with the tagged entity(e.g., by increasing the score, etc.) based on the tag.

In various embodiments, scoring circuit 614 uses various parameters todetermine a score associated with each recommendation. For example,scoring circuit 614 may use a fault priority associated with an entitysuch as a piece of equipment associated with a recommendation todetermine a score associated with the recommendation. In variousembodiments, parameter values are determined using context data. Forexample, a fault priority value may be determined using context datadescribing whether a piece of equipment has a backup. In variousembodiments, parameter values are associated with a time and/or a timerange. For example, a first fault priority weight may be associated witha first time period (e.g., 1-week lookback, etc.) and a second faultpriority weight may be associated with a second time period (e.g., a1-month lookback, etc.). In various embodiments, fault priority refersto an importance associated with a fault associated with an entity suchas a piece of equipment. For example, fault priorities may be valued as:critical fault=4, high fault=3, medium fault=2, and low fault=1. Invarious embodiments, work order status refers to a degree of completionassociated with a work order. For example, work order statuses may bevalued as: work order not raised=3, work order closed=2, work order openor work order in progress=1. In various embodiments, scoring circuit 614assigns the greatest value to work orders that have not been raised. Invarious embodiments, scoring circuit 614 determines a score describingan impact associated with a recommendation. For example, scoring circuit614 may assign a recommendation having high impact (e.g., solving animportant problem such as a critical HVAC failure, etc.) a first scoreon a first side of a continuum of scores and may assign a recommendationhaving a low impact (e.g., solving an unimportant problem such as aleaky roof in a building slated for demolition, etc.) a second score ona second side of the continuum. In some embodiments, scoring circuit 614determines a score based on a tag indicating mission criticality. Forexample, users may tag faults of a certain kind as mission criticalfaults. As an additional example, users may tag faults associated with aparticular space that a VIP resides in as mission critical and scoringcircuit 614 may generate a score for recommendations associated with theparticular space to account for the VIP (e.g., by scoring them higher,etc.). In various embodiments, priority index refers to an importanceassociated with a piece of equipment. A non-limiting example of priorityindex values are shown in the table below.

Equipment Priority Equipment Category Impact Area Index Active ChilledBeam Single Zone 5 Air Handling Unit Multiple Zones 30 Boiler WholeBuilding 50 Boiler Water Pumps Whole Building 50 Chilled Water PumpsWhole Building 50 Chiller Whole Building 50 COGEN Whole Building 100COGEN Water Pump Whole Building 50 Condenser Water Pumps Whole Building50 Constant Air Single Zone 5 Volume(CAV) Cooling Tower Whole Building50 CRAC Unit Single Zone 5 Dehumidifier Single Zone 5 Elevator WholeBuilding 50 Energy Recovery Unit Multiple Zones 30 Evaporator CoolerMultiple Zones 30 Exhaust Fans Multiple Zones 20 Fan Coil Unit SingleZone 5 Generator Whole Building 100 Generic Pump Multiple Zones 20Generic Valve Single Zone 5 GTW Single Zone 5 Heat Exchanger WholeBuilding 50 Heat Pump Multiple Zones 20 Hot Water Pumps Whole Building50 Isolation Damper Single Zone 5 Isolation Room Single Zone 5 LightingControl System Single Zone 5 Medical Gas Monitoring Single Zone 5 MeterMultiple Zones 20 Package Unit Single Zone 5 Power Distribution UnitMultiple Zones 20 Power Windows Single Zone 5 Pressure Monitor SingleZone 5 Radiant Cooling Single Zone 5 Radiant Heating Single Zone 5Reheat Coil Single Zone 5 Relief Air Fans Single Zone 5 Roof Top UnitMultiple Zones 30 Sewage Treatment Pump Multiple Zones 20 StaircasePressurization Whole Building 100 Fans Supply Fans Multiple Zones 20Traffic Signal Controller Single Zone 5 Unit Heater Single Zone 5 UnitVentilator Single Zone 5 UPS Whole Building 100 Variable Air Single Zone5 Volume(VAV) Variable Frequency Multiple Zones 30 Drive VariableRefrigerant Multiple Zones 30 Flow Water Treatment Plant Whole Building100 Water Treatment Pump Whole Building 50 Zone Control Single Zone 5

In some embodiments, priority index values are determined based on animpact associated with the event as shown in the table below.

Equipment priority Impact Index Whole Building (No Standby Option) 100Whole Building (Standby Option) 50 Multiple Zones (No Standby Option) 30Multiple Zones ( Standby Option) 20 Single Zone 5

Additionally or alternatively, priority index values may be dynamicallydetermined based on context data. For example, priority index values maybe determined using the ranges specified in the table below.

Max Value (Dynamic based on factors such as user Starting Valueinterest) For whole building with 50 75 standby option For multiple zonewith 20 28 standby option For single zone 5 10

In various embodiments, scoring circuit 614 assigns higher scores torecommendations that receive more user interest (e.g., clicks, etc.).For example, scoring circuit 614 may increase a priority index valueassociated with a recommendation from 50 to 71 in response todetermining that the user has shown a high degree of interest inprevious recommendations of a similar type as the recommendation. Invarious embodiments, similarity between recommendations is determinedbased on an entity (e.g., space, equipment, personnel, etc.) included inthe recommendation. For example, recommendations relating to aparticular space may be determined to be of a similar type. Additionallyor alternatively, recommendations relating to particular actions (e.g.,replace an AHU blower, etc.) may be determined to be of a similar type.In some embodiments, ranking system 600 stores a list of recommendationsdetermined to be of a similar type and ranking system 600 may access thelist to determine whether two recommendations are of a similar typebased on respective characteristics. In some embodiments, ranking system600 includes one or more rules to determine similarity. For example,ranking system 600 may include a number of rules that specify whetherrecommendations are considered similar based on analysis of therecommendation parameters. In some embodiments, user interest isdetermined for various periods of time. For example, user engagementcircuit 606 may weight user clicks that occurred in the last 5 dayshigher than user clicks that occurred a year ago. In variousembodiments, scoring circuit 614 iteratively updates scores based on howinterested users were in previous recommendations. For example, scoringcircuit 614 may decrease a score associated with a first type ofrecommendation from 88 to 77 in response to determining that the userpreviously was not very engaged with recommendations of the first type.In various embodiments, scoring circuit 614 becomes more accurate to auser's preferences over time. In various embodiments, scoring circuit614 generates user specific scores (e.g., specific to a particularuser's level of engagement, etc.). Additionally or alternatively,scoring circuit 614 may generate general scores (e.g., based onaggregate user interest, etc.). In various embodiments, ranking system600 facilitates selecting a time range and scoring circuit 614 mayupdate scores associated with recommendations based on the selected timerange. Recommendations may be associated with one or more events such asequipment faults, work order events, user interactions, and/or the like.In various embodiments, scoring circuit 614 combines one or more eventsassociated with a recommendation and scores the combination.Additionally or alternatively, scoring circuit 614 may score each eventseparately and combine the combination of scores. As a non-limitingexample, a first recommendation for “Fix AHU #1” may include faults“damper #3 of AHU #1 faulty” and “service feed A2 of AHU #1 needsreplacement” and scoring circuit 614 may retrieve context informationwith both faults, score both faults based on the context information,and combine both scores to generate an aggregate score for the firstrecommendation. In some embodiments, one or more recommendations may beassociated with a single underlying problem. Ranking system 600 mayidentifying the underlying problem and combine recommendations that areassociated with the underlying problem to reduce operator notificationfatigue. For example, multiple recommendations may be associated with afaulty control relay and ranking system 600 may identify therecommendations and combine them into a single recommendation.

Ranking circuit 616 is configured to rank recommendations based onscores associated with each recommendation. For example, ranking circuit616 may rank recommendations in ascending order based on score (e.g.,the score determined by scoring circuit 614, etc.). Additionally oralternatively, ranking circuit 616 may rank recommendations indescending order based on score. In various embodiments, ranking circuit616 modifies how recommendations are ranked based on the type ofrecommendation. For example, recommendations associated with spaceutilization may be ranked as shown in the table below.

Space utilization Space improve- Number of utilization mentrecommendations Interest in the Weight- potential for that spacerecommendation Total age 45% 45% 10% Score Rank 15% 85  6 24 43.35 1  9%91  1 14 42.8 2 27% 63  4 34 33.55 3 53% 47 10 18 27.45 4 65% 35 20 1326.05 5

In various embodiments, space utilization is calculated as: spaceutilization=occupancy/capacity. Likewise, space utilization potentialmay be calculated as: space utilization potential=1-space utilization.As another example, recommendations associated with occupantproductivity may be ranked as shown in the table below.

Work Equipment Fault order priority priority status index TotalWeightage 20% 30% 50% Score Rank 4 3 50 26.7 1 4 3 100 51.7 2 3 3 8041.5 3 4 3 80 41.7 4

In various embodiments, ranking circuit 616 sends ranking information todeployment circuit 620. For example, ranking circuit 616 may rankrecommendations and transmit the ranking information to deploymentcircuit 620 which may prioritize the recommendations (e.g., by modifyinga user interface to emphasize top ranking recommendations, by modifyinga process queue of a server, by modifying a work order queue of aservice team, etc.).

Learning circuit 618 is configured to update ranking system 600 overtime to improve ranking results such that the most impactfulrecommendations and/or the recommendations that a user finds most usefulare ranked highest. For example, learning circuit 618 may monitor userengagement (e.g., via user engagement circuit 610, etc.) with rankedrecommendations to determine whether the user found the top rankedrecommends the most useful (e.g., as measured by user clicks/engagement,etc.). As a further example, learning circuit 618 may update scoringcircuit 614 to rank recommendations of a first type higher thanrecommendations of a second type in response to determining thatrecommendations of the first type receive greater user engagement thanrecommendations of the second type despite being ranked lower thanrecommendations of the second type in the past. In some embodiments,recommendations that receive high user engagement (e.g., clicks, views,etc.) are ranked higher, thereby showing the user more of what they wantto see. Additionally or alternatively, recommendations that receive lowuser engagement may be ranked higher, thereby showing the userrecommendations that they may have overlooked. In various embodiments,learning circuit 618 implements a machine learning and/or artificialintelligence system. For example, learning circuit 618 may implementsmart workspace recommendations as discussed in U.S. Provisional PatentApplication No. 63/136,089 filed on Jan. 11, 2021, the entire disclosureof which is incorporated by reference herein.

Deployment circuit 620 is configured to take one or more actions basedon ranking information received from ranking circuit 616. For example,deployment circuit 620 may generate and/or update a user interfacedisplaying recommendations to a user to emphasize recommendations havinga high ranking (e.g., where a high ranking is a low number or viceversa, etc.) such as by displaying the recommendations higher in anordered list. As another example, deployment circuit 620 may update awork order queue to prioritize work orders associated with high rankingrecommendations. As yet another example, deployment circuit 620 mayupdate a smart agent work queue to prioritize actions associated withhigh ranking recommendations such as updating a digital twin of abuilding to reflect an added thermostat. In various embodiments,deployment circuit 620 emphasizes high ranking recommendations for auser. For example, deployment circuit 620 may generate a user interfacedisplaying recommendations in ascending and/or descending order of rank,thereby facilitating user prioritizing. Updating user interfaces isdiscussed in detail below with reference to FIGS. 8 and 9.

Referring now to FIG. 7, method 700 for ranking elements is shown,according to an exemplary embodiment. In various embodiments, rankingsystem 600 performs method 700. For example, ranking system 600 may rankelements such as BMS generated recommendations, equipment faultnotifications, security notifications, calendar alerts, healthreminders, task reminders, and/or the like. At step 710, ranking system600 may receive elements to rank. In various embodiments, the elementsinclude recommendations generated by a BMS. For example, the elementsmay include employee productivity recommendations such as arecommendation to increase the temperature in a space to improveemployee comfort and productivity. In various embodiments, the elementsare associated with events, spaces, people, and/or assets (e.g.,monetary assets, fungible goods, equipment, etc.). For example, arecommendation to fix a piece of HVAC equipment may be associated withan AHU. As another example, a recommendation to change a location of anemployee's desk may be associated with a particular employee.

At step 720, ranking system 600 may retrieve context informationassociated with one or more of the elements. For example, ranking system600 may retrieve context information associated with the events, spaces,and/or assets associated with a recommendation. As another example,ranking system 600 may retrieve user engagement data associated withrecommendations of a similar type as the recommendation to be ranked.The context data may include information such as a fault priority, awork order status, an equipment priority index, a space utilizationimprovement potential, a number of similar recommendations, userengagement measurements, a number of affected individuals associatedwith an equipment fault, a tag indicating mission criticality, healthdata, air quality data, certification information (e.g., environmentalsustainability certifications such as LEED green certifications, healthcertifications, air quality certifications, etc.), and/or the like. Invarious embodiments, the context data is tailored to the element beingranked. For example, the context information associated with rankingcalendar alerts may include a number of individuals associated with thecalendar alert, a title/importance of the individuals associated withthe calendar alert, the productivity associated with an event associatedwith the calendar alert, a distance to a location of an event associatedwith the calendar alert, other overlapping events, and/or the like. Forthe sake of brevity, all possible combinations of context informationassociated with various elements that may be ranked by ranking system600 are not listed herein, however one of skill in the art willappreciate that context information will vary based on the elements tobe ranked.

At step 730, ranking system 600 may score the elements based on thecontext information. For example, ranking system 600 may assign a scoreto a recommendation associated with a fixing a piece of HVAC equipmentby computing a score as discussed above in relation to FIG. 6. At step740, ranking system 600 may rank the elements based on the scoreassociated with each element. In various embodiments, ranking system 600ranks the elements in ascending order (e.g., based on score, etc.)Additionally or alternatively, ranking system 600 may rank the elementsin descending order. In some embodiments, ranking system 600 ranks theelements in a different manner. For example, ranking system 600 mayseparately rank each type of element (e.g., recommendations associatedwith a particular type of equipment fault, etc.) to produce a number ofascending lists for each type of element.

At step 750, ranking system 600 may transmit a notification based on theranking. In various embodiments, step 750 includes generating, updating,and/or displaying a user interface including the ranked elements. Forexample, ranking system 600 may display a user interface having the topranked recommendations shown at the top of a list and the bottom rankedrecommendations shown at the bottom of the list. Additionally oralternatively, step 750 may include performing other actions such asmodifying a work order queue. In various embodiments, step 750 includestransmitting the notification to an external system such as a BMS. Forexample, ranking system 600 may transmit an indication of the rankedelements to a BMS that may execute a machine learning model to selectone or more of the ranked elements for display to a user.

Referring now to FIG. 8, indoor health interface 800 is shown, accordingto an exemplary embodiment. In various embodiments, ranking system 600may generate (or facilitate generation of) indoor health interface 800.Indoor health interface 800 may display a number of recommendations 804to a user. In various embodiments, a user may select time period 802 toupdate which recommendations 804 are displayed. In various embodiments,ranking system 600 updates a ranking of recommendations 804 based ontime period 802 (e.g., to favor older and/or unaddressedrecommendations, etc.). In various embodiments, recommendations 804 aredisplayed in an order with higher ranked recommendations being displayedat top 806 and lower ranked recommendations be displayed at bottom 808.In various embodiments, ranking system 600 determines where in the orderrecommendations 804 are displayed based on context informationassociated with each recommendation.

Referring now to FIG. 9, space utilization interface 900 is shown,according to an exemplary embodiment. In various embodiments, rankingsystem 600 may generate (or facilitate generation of) space utilizationinterface 900. Space utilization interface 900 may display a number ofrecommendations 904 to a user. In various embodiments, a user may selecttime period 902 to update which recommendations 904 are displayed. Invarious embodiments, ranking system 600 updates a ranking ofrecommendations 904 based on time period 902 (e.g., to favor olderand/or unaddressed recommendations, etc.). In various embodiments,recommendations 904 are displayed in an order with higher rankedrecommendations being displayed at top 906 and lower rankedrecommendations be displayed at bottom 908. In various embodiments,ranking system 600 determines where in the order recommendations 904 aredisplayed based on context information associated with eachrecommendation.

Configuration of Exemplary Embodiments

It should be appreciated that the systems and methods disclosed hereincan be used to control any building equipment system that affects acondition of a building or space, such as, but not limited to, an HVACsystem, waterside system, airside system, electrical system, or anyother building equipment system. The illustrations and descriptionsherein describe embodiments configured to control of an HVAC system, butthese and other embodiments can be extended to control any one of theother building equipment systems.

It should also be appreciated that the systems and methods disclosedherein can utilize any machine learning control algorithm. RL and DRLmodels provide a framework for state-driven control using training data,but other models can be used to control the building equipment, such as,but not limited to, genetic algorithm control, neural network control,artificial intelligence, and other machine learning control.

The construction and arrangement of the systems and methods as shown inthe various exemplary embodiments are illustrative only. Although only afew embodiments have been described in detail in this disclosure, manymodifications are possible (e.g., variations in sizes, dimensions,structures, shapes and proportions of the various elements, values ofparameters, mounting arrangements, use of materials, colors,orientations, etc.). For example, the position of elements can bereversed or otherwise varied and the nature or number of discreteelements or positions can be altered or varied. Accordingly, all suchmodifications are intended to be included within the scope of thepresent disclosure. The order or sequence of any process or method stepscan be varied or re-sequenced according to alternative embodiments.Other substitutions, modifications, changes, and omissions can be madein the design, operating conditions and arrangement of the exemplaryembodiments without departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure can be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROMor other optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Combinationsof the above are also included within the scope of machine-readablemedia. Machine-executable instructions include, for example,instructions and data which cause a general purpose computer, specialpurpose computer, or special purpose processing machines to perform acertain function or group of functions.

Although the figures show a specific order of method steps, the order ofthe steps may differ from what is depicted. Also two or more steps canbe performed concurrently or with partial concurrence. Such variationwill depend on the software and hardware systems chosen and on designerchoice. All such variations are within the scope of the disclosure.Likewise, software implementations could be accomplished with standardprogramming techniques with rule based logic and other logic toaccomplish the various connection steps, processing steps, comparisonsteps and decision steps.

The term “client or “server” include all kinds of apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus may includespecial purpose logic circuitry, e.g., a field programmable gate array(FPGA) or an application specific integrated circuit (ASIC). Theapparatus may also include, in addition to hardware, code that createsan execution environment for the computer program in question (e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more ofthem). The apparatus and execution environment may realize variousdifferent computing model infrastructures, such as web services,distributed computing and grid computing infrastructures.

The systems and methods of the present disclosure may be completed byany computer program. A computer program (also known as a program,software, software application, script, or code) may be written in anyform of programming language, including compiled or interpretedlanguages, declarative or procedural languages, and it may be deployedin any form, including as a stand-alone program or as a module,component, subroutine, object, or other unit suitable for use in acomputing environment. A computer program may, but need not, correspondto a file in a file system. A program may be stored in a portion of afile that holds other programs or data (e.g., one or more scripts storedin a markup language document), in a single file dedicated to theprogram in question, or in multiple coordinated files (e.g., files thatstore one or more modules, sub programs, or portions of code). Acomputer program may be deployed to be executed on one computer or onmultiple computers that are located at one site or distributed acrossmultiple sites and interconnected by a communication network.

The processes and logic flows described in this specification may beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows may also be performedby, and apparatus may also be implemented as, special purpose logiccircuitry (e.g., an FPGA or an ASIC).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data (e.g., magnetic, magneto-optical disks, or optical disks).However, a computer need not have such devices. Moreover, a computer maybe embedded in another device (e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), etc.). Devicessuitable for storing computer program instructions and data include allforms of non-volatile memory, media and memory devices, including by wayof example semiconductor memory devices (e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto-optical disks; and CD ROM and DVD-ROM disks). Theprocessor and the memory may be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification may be implemented on a computerhaving a display device (e.g., a CRT (cathode ray tube), LCD (liquidcrystal display), OLED (organic light emitting diode), TFT (thin-filmtransistor), or other flexible configuration, or any other monitor fordisplaying information to the user and a keyboard, a pointing device,e.g., a mouse, trackball, etc., or a touch screen, touch pad, etc.) bywhich the user may provide input to the computer. Other kinds of devicesmay be used to provide for interaction with a user as well; for example,feedback provided to the user may be any form of sensory feedback (e.g.,visual feedback, auditory feedback, or tactile feedback), and input fromthe user may be received in any form, including acoustic, speech, ortactile input. In addition, a computer may interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Implementations of the subject matter described in this disclosure maybe implemented in a computing system that includes a back-end component(e.g., as a data server), or that includes a middleware component (e.g.,an application server), or that includes a front end component (e.g., aclient computer) having a graphical user interface or a web browserthrough which a user may interact with an implementation of the subjectmatter described in this disclosure, or any combination of one or moresuch back end, middleware, or front end components. The components ofthe system may be interconnected by any form or medium of digital datacommunication (e.g., a communication network). Examples of communicationnetworks include a LAN and a WAN, an inter-network (e.g., the Internet),and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The present disclosure may be embodied in various different forms, andshould not be construed as being limited to only the illustratedembodiments herein. Rather, these embodiments are provided as examplesso that this disclosure will be thorough and complete, and will fullyconvey the aspects and features of the present disclosure to thoseskilled in the art. Accordingly, processes, elements, and techniquesthat are not necessary to those having ordinary skill in the art for acomplete understanding of the aspects and features of the presentdisclosure may not be described. Unless otherwise noted, like referencenumerals denote like elements throughout the attached drawings and thewritten description, and thus, descriptions thereof may not be repeated.Further, features or aspects within each example embodiment shouldtypically be considered as available for other similar features oraspects in other example embodiments.

It will be understood that, although the terms “first,” “second,”“third,” etc., may be used herein to describe various elements,components, regions, layers and/or sections, these elements, components,regions, layers and/or sections should not be limited by these terms.These terms are used to distinguish one element, component, region,layer or section from another element, component, region, layer orsection. Thus, a first element, component, region, layer or sectiondescribed below could be termed a second element, component, region,layer or section, without departing from the spirit and scope of thepresent disclosure.

The terminology used herein is for the purpose of describing particularembodiments and is not intended to be limiting of the presentdisclosure. As used herein, the singular forms “a” and “an” are intendedto include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“comprises,” “comprising,” “includes,” and “including,” “has,” “have,”and “having,” when used in this specification, specify the presence ofthe stated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof. As used herein, the term “and/or” includes anyand all combinations of one or more of the associated listed items.Expressions such as “at least one of,” when preceding a list ofelements, modify the entire list of elements and do not modify theindividual elements of the list.

As used herein, the term “substantially,” “about,” and similar terms areused as terms of approximation and not as terms of degree, and areintended to account for the inherent variations in measured orcalculated values that would be recognized by those of ordinary skill inthe art. Further, the use of “may” when describing embodiments of thepresent disclosure refers to “one or more embodiments of the presentdisclosure.” As used herein, the terms “use,” “using,” and “used” may beconsidered synonymous with the terms “utilize,” “utilizing,” and“utilized,” respectively. Also, the term “exemplary” is intended torefer to an example or illustration.

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

What is claimed is:
 1. A method of ranking recommendations, the methodcomprising: receiving a recommendation to improve employee productivity,the recommendation including an indication of an equipment fault;retrieving context data associated with the equipment fault, the contextdata including at least three of: a fault priority associated with theequipment fault, a work order status for a work order associated withthe equipment fault, a priority associated with at least one of (i) apiece of equipment, (ii) a space, or (iii) an individual associated withthe equipment fault, a monetary value associated with the equipmentfault, or a health parameter associated with the equipment fault;calculating a score for the recommendation based on the at least threeof: the fault priority, the work order status, the priority, themonetary value, or the health parameter; and performing an action basedon the score using at least one of the score or the recommendation. 2.The method of claim 1, wherein retrieving the context data includesretrieving data associated with a number of previous user interactionswith recommendations relating to equipment of a same type as the pieceof equipment.
 3. The method of claim 2, further comprising updating theequipment priority based on the number of previous user interactions. 4.The method of claim 1, wherein performing the action includesemphasizing the recommendation over other recommendations by displayingthe recommendation higher in a list of recommendations based on thescore for the recommendation and other scores associated with each ofthe other recommendations.
 5. The method of claim 1, wherein the contextdata further includes at least one of: an air quality metric associatedwith the equipment fault, or an energy usage metric associated with theequipment fault, and wherein the score is calculated based on at leastone of: the air quality metric, or the energy usage metric.
 6. Themethod of claim 1, wherein the priority is a user defined prioritycorresponding to the at least one of: the piece of equipment, the space,or the individual.
 7. The method of claim 1, wherein retrieving thecontext data includes retrieving data describing a change to one or moreenvironmental parameters of a space associated with the piece ofequipment, and wherein the method further includes updating the prioritybased on the change.
 8. The method of claim 1, wherein the score iscalculated based on the fault priority, the work order status, and thepriority.
 9. The method of claim 1, wherein retrieving the context dataincludes retrieving an indication of whether the piece of equipment hasa standby, and wherein the method further includes updating the prioritybased on the indication.
 10. The method of claim 1, wherein theequipment fault is a predicted equipment fault that has yet to occur.11. A system for ranking recommendations, the system comprising one ormore processors and one or more memories storing instructions thereonthat, when executed by the one or more processors, cause the one or moreprocessors to: receive a recommendation to improve employeeproductivity, the recommendation including an indication of an equipmentfault; retrieve context data associated with the equipment fault, thecontext data including at least three of: a fault priority associatedwith the equipment fault, a work order status for a work orderassociated with the equipment fault, a priority associated with at leastone of (i) a piece of equipment, (ii) a space, or (iii) an individualassociated with the equipment fault, a monetary value associated withthe equipment fault, or a health parameter associated with the equipmentfault; calculate a score for the recommendation based on the at leastthree of: the fault priority, the work order status, the priority, themonetary value, or the health parameter; and perform an action based onthe score using at least one of the score or the recommendation.
 12. Thesystem of claim 11, wherein retrieving the context data includesretrieving data associated with a number of previous user interactionswith recommendations relating to equipment of a same type as the pieceof equipment.
 13. The system of claim 12, wherein the instructionsfurther cause the one or more processors to update the equipmentpriority based on the number of previous user interactions.
 14. Thesystem of claim 11, wherein performing the action includes emphasizingthe recommendation over other recommendations by displaying therecommendation higher in a list of recommendations based on the scorefor the recommendation and other scores associated with each of theother recommendations.
 15. The system of claim 11, wherein the contextdata further includes at least one of: an air quality metric associatedwith the equipment fault, or an energy usage metric associated with theequipment fault, and wherein the score is calculated based on at leastone of: the air quality metric, or the energy usage metric.
 16. Thesystem of claim 11, wherein the priority is a user defined prioritycorresponding to the at least one of: the piece of equipment, the space,or the individual.
 17. The system of claim 11, wherein retrieving thecontext data includes retrieving data describing a change to one or moreenvironmental parameters of a space associated with the piece ofequipment, and wherein the instructions further cause the one or moreprocessors to update the priority based on the change.
 18. The system ofclaim 11, wherein the score is calculated based on the fault priority,the work order status, and the priority.
 19. The system of claim 11,wherein retrieving the context data includes retrieving an indication ofwhether the piece of equipment has a standby, and wherein theinstructions further cause the one or more processors to update thepriority based on the indication.
 20. The system of claim 11, whereinthe equipment fault is a predicted equipment fault that has yet tooccur.